package entities;

import java.io.Serializable;
import javax.persistence.*;

import util.DynamicObjectHandler;

import business.bo.CandidatoBO;
import business.dto.CandidatoDTO;

import java.util.Date;


/**
 * The persistent class for the test_db_candidato database table.
 * 
 */
@Entity
@Table(name="test_db_candidato")
public class CandidatoEntity  implements Serializable{
	private static final long serialVersionUID = 1L;

	@Id
//	@SequenceGenerator(name="TEST_DB_CANDIDATO_ID_GENERATOR" )
//	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="TEST_DB_CANDIDATO_ID_GENERATOR")
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private Integer id;

	
	@Column(nullable = false,columnDefinition = "TINYINT(1)")
	private boolean incoming;
	
	
    @Lob()
	@Column(name="ambienti_svil")
	private String ambientiSvil;

    
	@Column(name="app_server")
	private String appServer;

	@Column(name="area_di_studi")
	private String areaDiStudi;

	@Column(name="area_dip")
	private String areaDip;

	@Column(name="area_master")
	private String areaMaster;

	@Column(name="area_uni")
	private String areaUni;

	private Integer categoria;

	@Column(name="cert_dip")
	private String certDip;

	@Column(name="cert_master")
	private String certMaster;

	@Column(name="cert_uni")
	private String certUni;

	@Column(name="certificati___corsi___attestati")
	private String certificatiCorsiAttestati;

	@Column(name="Citta")
	private String citta;

	@Column(name="citta_dip")
	private String cittaDip;

	@Column(name="citta_dom")
	private String cittaDom;

	@Column(name="citta_master")
	private String cittaMaster;

	@Column(name="citta_res")
	private String cittaRes;

	@Column(name="citta_uni")
	private String cittaUni;

	private String cognome;

	@Column(name="come_ci_hai_conosciuto")
	private String comeCiHaiConosciuto;

	private String contratto;

    @Lob()
	private String cv;

    @Temporal( TemporalType.TIMESTAMP)
	@Column(name="data_nascita")
	private Date dataNascita;

    @Temporal( TemporalType.TIMESTAMP)
	@Column(name="date_start")
	private Date dateStart;

    @Temporal( TemporalType.TIMESTAMP)
	@Column(name="date_time")
	private Date dateTime;

    @Lob()
	private String db;

    @Lob()
	@Column(name="diploma_label")
	private String diplomaLabel;

	private String email;

	@Column(name="indirizzo_dom")
	private String indirizzoDom;

	@Column(name="Indirizzo_res")
	private String indirizzo_res;

	@Column(name="istituto_dip")
	private String istitutoDip;

	@Column(name="istituto_master")
	private String istitutoMaster;

	@Column(name="istituto_uni")
	private String istitutoUni;

    @Lob()
	@Column(name="laurea_label")
	private String laureaLabel;

    @Lob()
	private String lingue;

	@Column(name="livello_istruzione")
	private String livelloIstruzione;

    @Lob()
	@Column(name="master_label")
	private String masterLabel;

	private String nazione;

	@Column(name="nazione_dip")
	private String nazioneDip;

	@Column(name="nazione_master")
	private String nazioneMaster;

	@Column(name="nazione_uni")
	private String nazioneUni;
	
	@Column(name="nome")
	private String name;

	private String patente;

    @Lob()
	private String prodotti;

	private String salario;

	private String sesso;

    @Lob()
	@Column(name="sistemi_operativi")
	private String sistemiOperativi;

	private String skill;

    @Lob()
	@Column(name="skill_label")
	private String skillLabel;
    
    
	private String telefono;

	@Column(name="tipo_categoria")
	private String tipoCategoria;

	@Column(name="work_esperienza")
	private String workEsperienza;

	@Column(name="work_preference")
	private String workPreference;

    public CandidatoEntity() {
    	super();
    }

	public Integer getId() {
		return this.id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public boolean isIncoming() {
		return incoming;
	}

	public void setIncoming(boolean incoming) {
		this.incoming = incoming;
	}

	public String getAmbientiSvil() {
		return this.ambientiSvil;
	}

	public void setAmbientiSvil(String ambientiSvil) {
		this.ambientiSvil = ambientiSvil;
	}

	public String getAppServer() {
		return this.appServer;
	}

	public void setAppServer(String appServer) {
		this.appServer = appServer;
	}

	public String getAreaDiStudi() {
		return this.areaDiStudi;
	}

	public void setAreaDiStudi(String areaDiStudi) {
		this.areaDiStudi = areaDiStudi;
	}

	public String getAreaDip() {
		return this.areaDip;
	}

	public void setAreaDip(String areaDip) {
		this.areaDip = areaDip;
	}

	public String getAreaMaster() {
		return this.areaMaster;
	}

	public void setAreaMaster(String areaMaster) {
		this.areaMaster = areaMaster;
	}

	public String getAreaUni() {
		return this.areaUni;
	}

	public void setAreaUni(String areaUni) {
		this.areaUni = areaUni;
	}

	public Integer getCategoria() {
		return this.categoria;
	}

	public void setCategoria(Integer categoria) {
		this.categoria = categoria;
	}

	public String getCertDip() {
		return this.certDip;
	}

	public void setCertDip(String certDip) {
		this.certDip = certDip;
	}

	public String getCertMaster() {
		return this.certMaster;
	}

	public void setCertMaster(String certMaster) {
		this.certMaster = certMaster;
	}

	public String getCertUni() {
		return this.certUni;
	}

	public void setCertUni(String certUni) {
		this.certUni = certUni;
	}

	public String getCertificatiCorsiAttestati() {
		return this.certificatiCorsiAttestati;
	}

	public void setCertificatiCorsiAttestati(String certificatiCorsiAttestati) {
		this.certificatiCorsiAttestati = certificatiCorsiAttestati;
	}

	public String getCitta() {
		return this.citta;
	}

	public void setCitta(String citta) {
		this.citta = citta;
	}

	public String getCittaDip() {
		return this.cittaDip;
	}

	public void setCittaDip(String cittaDip) {
		this.cittaDip = cittaDip;
	}

	public String getCittaDom() {
		return this.cittaDom;
	}

	public void setCittaDom(String cittaDom) {
		this.cittaDom = cittaDom;
	}

	public String getCittaMaster() {
		return this.cittaMaster;
	}

	public void setCittaMaster(String cittaMaster) {
		this.cittaMaster = cittaMaster;
	}

	public String getCittaRes() {
		return this.cittaRes;
	}

	public void setCittaRes(String cittaRes) {
		this.cittaRes = cittaRes;
	}

	public String getCittaUni() {
		return this.cittaUni;
	}

	public void setCittaUni(String cittaUni) {
		this.cittaUni = cittaUni;
	}

	public String getCognome() {
		return this.cognome;
	}

	public void setCognome(String cognome) {
		this.cognome = cognome;
	}

	public String getComeCiHaiConosciuto() {
		return this.comeCiHaiConosciuto;
	}

	public void setComeCiHaiConosciuto(String comeCiHaiConosciuto) {
		this.comeCiHaiConosciuto = comeCiHaiConosciuto;
	}

	public String getContratto() {
		return this.contratto;
	}

	public void setContratto(String contratto) {
		this.contratto = contratto;
	}

	public String getCv() {
		return this.cv;
	}

	public void setCv(String cv) {
		this.cv = cv;
	}

	public Date getDataNascita() {
		return this.dataNascita;
	}

	public void setDataNascita(Date dataNascita) {
		this.dataNascita = dataNascita;
	}

	public Date getDateStart() {
		return this.dateStart;
	}

	public void setDateStart(Date dateStart) {
		this.dateStart = dateStart;
	}

	public Date getDateTime() {
		return this.dateTime;
	}

	public void setDateTime(Date dateTime) {
		this.dateTime = dateTime;
	}

	public String getDb() {
		return this.db;
	}

	public void setDb(String db) {
		this.db = db;
	}

	public String getDiplomaLabel() {
		return this.diplomaLabel;
	}

	public void setDiplomaLabel(String diplomaLabel) {
		this.diplomaLabel = diplomaLabel;
	}

	public String getEmail() {
		return this.email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getIndirizzoDom() {
		return this.indirizzoDom;
	}

	public void setIndirizzoDom(String indirizzoDom) {
		this.indirizzoDom = indirizzoDom;
	}

	public String getIndirizzo_res() {
		return this.indirizzo_res;
	}

	public void setIndirizzo_res(String indirizzo_res) {
		this.indirizzo_res = indirizzo_res;
	}

	public String getIstitutoDip() {
		return this.istitutoDip;
	}

	public void setIstitutoDip(String istitutoDip) {
		this.istitutoDip = istitutoDip;
	}

	public String getIstitutoMaster() {
		return this.istitutoMaster;
	}

	public void setIstitutoMaster(String istitutoMaster) {
		this.istitutoMaster = istitutoMaster;
	}

	public String getIstitutoUni() {
		return this.istitutoUni;
	}

	public void setIstitutoUni(String istitutoUni) {
		this.istitutoUni = istitutoUni;
	}

	public String getLaureaLabel() {
		return this.laureaLabel;
	}

	public void setLaureaLabel(String laureaLabel) {
		this.laureaLabel = laureaLabel;
	}

	public String getLingue() {
		return this.lingue;
	}

	public void setLingue(String lingue) {
		this.lingue = lingue;
	}

	public String getLivelloIstruzione() {
		return this.livelloIstruzione;
	}

	public void setLivelloIstruzione(String livelloIstruzione) {
		this.livelloIstruzione = livelloIstruzione;
	}

	public String getMasterLabel() {
		return this.masterLabel;
	}

	public void setMasterLabel(String masterLabel) {
		this.masterLabel = masterLabel;
	}

	public String getNazione() {
		return this.nazione;
	}

	public void setNazione(String nazione) {
		this.nazione = nazione;
	}

	public String getNazioneDip() {
		return this.nazioneDip;
	}

	public void setNazioneDip(String nazioneDip) {
		this.nazioneDip = nazioneDip;
	}

	public String getNazioneMaster() {
		return this.nazioneMaster;
	}

	public void setNazioneMaster(String nazioneMaster) {
		this.nazioneMaster = nazioneMaster;
	}

	public String getNazioneUni() {
		return this.nazioneUni;
	}

	public void setNazioneUni(String nazioneUni) {
		this.nazioneUni = nazioneUni;
	}

	public String getName() {
		return this.name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPatente() {
		return this.patente;
	}

	public void setPatente(String patente) {
		this.patente = patente;
	}

	public String getProdotti() {
		return this.prodotti;
	}

	public void setProdotti(String prodotti) {
		this.prodotti = prodotti;
	}

	public String getSalario() {
		return this.salario;
	}

	public void setSalario(String salario) {
		this.salario = salario;
	}

	public String getSesso() {
		return this.sesso;
	}

	public void setSesso(String sesso) {
		this.sesso = sesso;
	}

	public String getSistemiOperativi() {
		return this.sistemiOperativi;
	}

	public void setSistemiOperativi(String sistemiOperativi) {
		this.sistemiOperativi = sistemiOperativi;
	}

	public String getSkill() {
		return this.skill;
	}

	public void setSkill(String skill) {
		this.skill = skill;
	}

	public String getSkillLabel() {
		return this.skillLabel;
	}

	public void setSkillLabel(String skillLabel) {
		this.skillLabel = skillLabel;
	}

	public String getTelefono() {
		return this.telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}

	public String getTipoCategoria() {
		return this.tipoCategoria;
	}

	public void setTipoCategoria(String tipoCategoria) {
		this.tipoCategoria = tipoCategoria;
	}

	public String getWorkEsperienza() {
		return this.workEsperienza;
	}

	public void setWorkEsperienza(String workEsperienza) {
		this.workEsperienza = workEsperienza;
	}

	public String getWorkPreference() {
		return this.workPreference;
	}

	public void setWorkPreference(String workPreference) {
		this.workPreference = workPreference;
	}
	
	public CandidatoDTO getDTO(){

		
		DynamicObjectHandler doh=new DynamicObjectHandler();
		CandidatoDTO cDTO=new CandidatoDTO();
		
		try {
			doh.fill(cDTO,this);
//			cDTO.setDateStart(dateStart);
			cDTO.setGcDTO(this.gestioneCandidato.getDTO());
		} catch (Exception e) {
			// TODO Auto-generated catch block
			
		}
		
		
		return cDTO;
	}
	//bi-directional one-to-one association to GestioneCandidatoEntity
	@OneToOne
	@JoinColumn(name="id")
	private GestioneCandidatoEntity gestioneCandidato;
	
	public GestioneCandidatoEntity getGestioneCandidato() {
		return this.gestioneCandidato;
	}

	public void setGestioneCandidato(GestioneCandidatoEntity gestioneCandidato) {
		this.gestioneCandidato = gestioneCandidato;
	}

	
	
}